# 作者: 家里蹲 吴越洋
# 2023年03月01日12时54分37秒
import random

class Sort():
    def __init__(self,arr_len):
        self.arr_len=arr_len
        self.arr=[]
        self.arr_random()

    def arr_random(self):
        for i in range(self.arr_len):
            self.arr.append(random.randint(0,99))
    #选择排序
    def select_sort(self):
        i=self.arr_len
        for k in range(0,self.arr_len):
            #假设最大元素在0号位置
            max_idx=0
            for j in range(1,i):
                if self.arr[max_idx]<self.arr[j]:
                    max_idx=j
            self.arr[max_idx],self.arr[i-1]=self.arr[i-1],self.arr[max_idx]
            i-=1

    #插入排序
    def insert_sort(self):
        arr = self.arr
        # 外层控制的是要插入数据的下标
        for i in range(1, self.arr_len):
            insert_val = arr[i]  # 把要插入的元素保存下来
            # 内层控制的是insert_val与有序序列的比较
            j = i - 1
            while j >= 0:
                if insert_val < arr[j]:  # 如果插入值小于某个元素，就把对应元素往后移动
                    arr[j + 1] = arr[j]
                else:
                    break
                j -= 1
            arr[j + 1] = insert_val


if __name__ == '__main__':
    # queue = []
    # for i in range(10):
    #     queue.append(random.randint(1, 100))
    sort = Sort(10)
    print(sort.arr)
    sort.select_sort()
    print(sort.arr)
    sort = Sort(10)
    print(sort.arr)
    sort.insert_sort()
    print(sort.arr)